home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / mcode_01 / source / function / lower.s < prev    next >
Text File  |  1995-04-27  |  2KB  |  50 lines

  1. * Program     : Converts a string to lower case
  2. * Author    : Stephen McNabb
  3. * Creation date : 21th February 1995
  4. * Last update    : 21th February 1995
  5. * Parameters    : a0 needs to contain address of string to convert
  6. *          before jumping to the 'lower' routine
  7. * Output    : The string is converted to lowercase
  8.  
  9. start:    jsr    cls        /clear the screen
  10.     move.l    #mess1,d0    /move address of message to d0
  11.     jsr    ptext        /and display on screen
  12.     move.l    #str,d0        /move address of string for conversion to d0
  13.     jsr    ptext        /and display on screen
  14.     jsr    line        /display a new line
  15.     
  16.     move.l    #str,a0        /move address of string for conversion to a0
  17.     jsr    lower        /and change it to lowercase
  18.     move.l    #mess2,d0    /move address of message to d0
  19.     jsr    ptext        /and display on screen
  20.     move.l    #str,d0        /move address of converted message to d0
  21.     jsr    ptext        /and display on screen
  22.     jsr    line        /dislay a new line
  23.  
  24. end:    bra    exit        /exit from program
  25.  
  26. lower:    movem.l    d0,-(sp)    /stack register
  27. lloop:    move.b    (a0),d0        /move character of string to d0
  28.     cmpi.b    #0,d0        /check if it is a null character
  29.     beq    lend        /if so then it is the end of the string
  30.     cmpi.b    #'A',d0        /check if it is less than 'A'
  31.     blt    lnext        /if so get another character
  32.     cmpi.b    #'Z',d0        /check if it is greater than 'Z'
  33.     bgt    lnext        /if so get another chatacter
  34.     addi.b     #32,d0        /else convert it to lowercase
  35.     move.b    d0,(a0)        /and move new character back to string
  36. lnext:    add.l    #1,a0        /increment a0 for next character
  37.     bra    lloop        /and loop
  38. lend:    movem.l    (sp)+,d0    /unstack register
  39.     rts            /return from subroutine
  40.  
  41.     include "\SOURCE\FUNCTION.S"    /include standard functions
  42.     
  43. *** Program Data ***
  44.  
  45. mess1:    dc.b    'The string to convert to lower case is : ',0
  46. mess2:    dc.b    'The string is now : ',0
  47. str:    dc.b    'Convert THIS to LOwer Case',0
  48.  
  49. *** End of File ***
  50.